package com.agent.action.interfaces;

import com.agent.action.entity.AgentMessageHistoryEntity;
import com.agent.action.entity.DifyAgentEntity;
import com.agent.action.param.ConversationNameParam;
import com.agent.action.param.PauseParam;
import reactor.core.publisher.Flux;

/**
 * 智能体调用接口
 */
public interface AgentClient<T> {
    /**
     * 与智能体交流
     * @return Flux<String>
     */
    public Flux<String> chat(DifyAgentEntity<T> difyAgentEntity);

    /**
     * 获取会话历史消息
     * @param message
     * @return
     */
    public Object getMessageHistory(AgentMessageHistoryEntity message);

    public void pause(PauseParam pauseParam);

    /**
     * 会话重命名以及自动命名
     * @return
     */
    public String makeConversationName(ConversationNameParam param);
}
